package com.np.moneylover;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Locale;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import com.np.dao.JSONParser;
import com.np.moneylover.Chi.Chi_action;

import Util.Constants;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.ToggleButton;

public class Vay extends Activity implements OnClickListener {
	TextView lblaisuat=null;
	EditText txttennguoivay=null;
	EditText txtsotien=null;
	EditText txtghichu=null;
	ToggleButton tgblai=null;
	EditText txtlaisuatchovay=null;
	EditText txtngaychovay=null;
	EditText txtngaytravay=null;
	Button btnthemluu=null;
	Button btnluu=null;
	private Object dateFinish;
	private String url1;
	private String mess;
	private Object dataFinish2;
	private Calendar cal;
	private Calendar cal1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    	// TODO Auto-generated method stub
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.vay);
    	txttennguoivay=(EditText)findViewById(R.id.txtnguoivay);
    	txtsotien =(EditText)findViewById(R.id.txttienvay);
    	txtghichu=(EditText)findViewById(R.id.txtghichuvay);
    	tgblai=(ToggleButton)findViewById(R.id.tgblai);
    	txtlaisuatchovay=(EditText)findViewById(R.id.txtlaisuatmuon);
    	txtngaychovay=(EditText)findViewById(R.id.dtpngayvay);
    	txtngaytravay=(EditText)findViewById(R.id.dtpngaytravay);
    	lblaisuat=(TextView)findViewById(R.id.lblaisuat);
    	btnthemluu=(Button)findViewById(R.id.btnthemluuvay);
    	btnluu=(Button)findViewById(R.id.btnluuvay);
    	btnthemluu.setOnClickListener(this);
    	btnluu.setOnClickListener(this);
    	tgblai.setOnClickListener(this);
    	txtngaychovay.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				showDatePickerDialog();
			}
    		
    	});
    	txtngaytravay.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				showDatePickerDialog1();
			}
    		
    	});
    	Loadreference();
    }
	private void Loadreference() {
		// TODO Auto-generated method stub
		cal = Calendar.getInstance();
		cal1 = Calendar.getInstance();
		SimpleDateFormat dft = null;
		// Định dạng ngày / tháng /năm
		dft = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
		String strDate = dft.format(cal.getTime());
		String strDate1=dft.format(cal1.getTime());
		// hiển thị lên giao diện
		txtngaychovay.setText(strDate);
		txtngaytravay.setText(strDate);
		dateFinish = cal.getTime();
        dataFinish2=cal1.getTime();
	}

	public void showDatePickerDialog() {
		OnDateSetListener callback = new OnDateSetListener() {

			@Override
			public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
				// TODO Auto-generated method stub
				txtngaychovay.setText((arg3) + "/" + (arg2 + 1) + "/" + arg1);
				// Lưu vết lại biến ngày hoàn thành
				cal.set(arg1, arg2, arg3);
				dateFinish = cal.getTime();
			}
		};
		// các lệnh dưới này xử lý ngày giờ trong DatePickerDialog
		// sẽ giống với trên TextView khi mở nó lên

		String s = txtngaychovay.getText() + "";
		String strArrtmp[] = s.split("/");
		int ngay = Integer.parseInt(strArrtmp[0]);
		int thang = Integer.parseInt(strArrtmp[1]) - 1;
		int nam = Integer.parseInt(strArrtmp[2]);
		DatePickerDialog pic = new DatePickerDialog(Vay.this, callback, nam,
				thang, ngay);
		pic.setTitle("Chọn ngày hoàn thành");
		pic.show();
	}

	
	public void showDatePickerDialog1() {
		OnDateSetListener callback1 = new OnDateSetListener() {

			@Override
			public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
				// TODO Auto-generated method stub
				txtngaytravay.setText((arg3) + "/" + (arg2 + 1) + "/" + arg1);
				// Lưu vết lại biến ngày hoàn thành
				cal1.set(arg1, arg2, arg3);
				dataFinish2 = cal1.getTime();
			}
		};
		// các lệnh dưới này xử lý ngày giờ trong DatePickerDialog
		// sẽ giống với trên TextView khi mở nó lên

		String s = txtngaytravay.getText() + "";
		String strArrtmp[] = s.split("/");
		int ngay = Integer.parseInt(strArrtmp[0]);
		int thang = Integer.parseInt(strArrtmp[1]) - 1;
		int nam = Integer.parseInt(strArrtmp[2]);
		DatePickerDialog pic = new DatePickerDialog(Vay.this, callback1, nam,
				thang, ngay);
		pic.setTitle("Chọn ngày hoàn thành");
		pic.show();
	}

//////////////////////////////////////////////////////////////////////////
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		int id=v.getId();
		switch (id) {
		case R.id.btnthemluuvay:
			if (Invalid().equals("")) {
				url1 = "http://10.0.2.2:8080/connect_android/vayno_them.php";
				Vay_action task = new Vay_action();
				task.execute(url1);
				if(mess.equals("1")){
				   Intent I= new Intent(this,GiaoDich.class);
				   startActivity(I);
						   
				}
				else
				{
					AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);                      
				    dlgAlert.setMessage("Thêm khoản chi không thành công");
				    dlgAlert.setTitle("Thông báo");              
				    dlgAlert.setPositiveButton("OK", null);
				    dlgAlert.setCancelable(false);
				    dlgAlert.create().show();
					
				}
			}
			else
			{
				AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);                      
			    dlgAlert.setMessage(Invalid());
			    dlgAlert.setTitle("Thông báo");              
			    dlgAlert.setPositiveButton("OK", null);
			    dlgAlert.setCancelable(false);
			    dlgAlert.create().show();
			}
			///insert du lieu xong chuyen ve man hinh giao dich de them giao dich moi
			
			break;
		case R.id.btnluuvay:
			if (Invalid().equals("")) {
				url1 = "http://10.0.2.2:8080/connect_android/vayno_them.php";
				Vay_action task = new Vay_action();
				task.execute(url1);
				if(mess.equals("1")){
				   Intent I= new Intent(this,SoNo.class);
				   startActivity(I);
						   
				}
				else
				{
					AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);                      
				    dlgAlert.setMessage("Thêm khoản vay không thành công");
				    dlgAlert.setTitle("Thông báo");              
				    dlgAlert.setPositiveButton("OK", null);
				    dlgAlert.setCancelable(false);
				    dlgAlert.create().show();
					
				}
			}
			else
			{
				AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);                      
			    dlgAlert.setMessage(Invalid());
			    dlgAlert.setTitle("Thông báo");              
			    dlgAlert.setPositiveButton("OK", null);
			    dlgAlert.setCancelable(false);
			    dlgAlert.create().show();
			}
			///insert du lieu xong chuyen ve man hinh cua so thu chi
			break;
		
		case R.id.tgblai:
			if(tgblai.isEnabled())
			{
				lblaisuat.setVisibility(View.VISIBLE);
			}
			else
			{
				lblaisuat.setVisibility(View.INVISIBLE);
			}
		default:
			break;
		}
	}
	// kiem tra cac truong thong tin
	public String Invalid() {
		String errors = "";
		if (txttennguoivay.getText().toString().trim().equals("")) {
			errors += "\nKhoản thu chưa nhập";
		}
		
		if (txtsotien.getText().toString().trim().equals("")) {
			errors += "\nSố tiền chưa nhập";
		} else {
			try {
				Float.parseFloat(txtsotien.getText().toString());

			} catch (Exception e) {
				// TODO: handle exception
				errors += "\nSố tiền không hợp lệ";

			}
		}
		
		return errors;

	}
	
	
	
	class Vay_action extends AsyncTask<String, String, String> {
		ProgressDialog Pdialog = null;
		int success = 0;
		String msg = "";
		String test = "";
		

		@Override
		protected void onPreExecute() {
			super.onPreExecute();
			Pdialog = new ProgressDialog(Vay.this);
			Pdialog.setMessage("Đang thực hiện giao dịch..");
			Pdialog.setIndeterminate(false);
			Pdialog.setCancelable(true);
			Pdialog.show();
		}

		protected String doInBackground(String... params) {
			if (params == null)
				return null;
			JSONParser jsonParser = new JSONParser();
			// get url from params
			List<NameValuePair> arrays = new ArrayList<NameValuePair>();

			arrays.add(new BasicNameValuePair("tengd", txttennguoivay.getText()
					.toString().trim()));
			arrays.add(new BasicNameValuePair("sotien", txtsotien.getText()
					.toString().trim()));
			arrays.add(new BasicNameValuePair("laisuat", "0"));
			arrays.add(new BasicNameValuePair("ngaygd", "2013-8-9"));
			arrays.add(new BasicNameValuePair("ghichu", txtghichu.getText()
					.toString().trim()));
			arrays.add(new BasicNameValuePair("ngaytra", "2013-8-9"));
			arrays.add(new BasicNameValuePair("magd", "3"));
			arrays.add(new BasicNameValuePair("username", Constants._login
					.getUser().toString()));
			arrays.add(new BasicNameValuePair("islai", "0"));
			arrays.add(new BasicNameValuePair("datra", "0"));
			
			JSONObject json = jsonParser.makeHttpRequest(url1, "POST", arrays);
			try {
				success = json.getInt("success");
				test = json.getString("message");

				/*if (success == 1) {
					// successfully created product

					msg = "thanhcong";
					return null;

				} else {
					// failed to create product
					msg = "That bai";
					return null;
				}*/
			} catch (JSONException e) {
				e.printStackTrace();
			}

			return null;
		}

		protected void onPostExecute(String file_url) {
			// dismiss the dialog once done
			Pdialog.dismiss();

			if (success == 1) {
				
                mess="1";
			}
			else
			{
				mess="2";
			}

		}
	}


}
